From 41c0cf8006351ed0ced2bd1849159e113262c0b2 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Thu, 17 May 2012 22:50:25 +0000 Subject: [PATCH] codemaker: write version 49 (1.5) class files The trick of writing generic types into class files of versions < 49 does no longer work with javac from OpenJDK 7: /comphelper/qa/complex/comphelper/Map.java:154: error: type Pair does not take parameters Pair< ?, ? >[] initialMappings = new Pair< ?, ? >[ _keys.length ]; There appears to be a related JDK bug for this, at some time javac had an undocumented option to produce similar class files that are also rejected now, this has been closed as "Not a Defect": http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7078419 Change-Id: I8a504f6cbb3bb58cd914aebb88637cc6feb0bd48 (cherry picked from commit 26643fb59e0005f0bc83708b785d20d62d8e7411) Signed-off-by: Michael Stahl Signed-off-by: Stephan Bergmann Gbp-Pq: Name jdk7.diff --- codemaker/source/javamaker/classfile.cxx | 2 +- hsqldb/makefile.mk | 3 +- hsqldb/patches/jdbc-4.1.patch | 267 +++++++++++++++++++++++ 3 files changed, 270 insertions(+), 2 deletions(-) create mode 100644 hsqldb/patches/jdbc-4.1.patch diff --git a/codemaker/source/javamaker/classfile.cxx b/codemaker/source/javamaker/classfile.cxx index 4f74781cff8..59d386e3aac 100644 --- a/codemaker/source/javamaker/classfile.cxx +++ b/codemaker/source/javamaker/classfile.cxx @@ -693,7 +693,7 @@ void ClassFile::addMethod( void ClassFile::write(FileStream & file) const { writeU4(file, 0xCAFEBABE); writeU2(file, 0); - writeU2(file, 46); + writeU2(file, 49); // class file version of JRE 1.5 writeU2(file, m_constantPoolCount); writeStream(file, m_constantPool); writeU2(file, static_cast< sal_uInt16 >(m_accessFlags)); diff --git a/hsqldb/makefile.mk b/hsqldb/makefile.mk index 8b3d5b131ad..2e9fa8a21af 100755 --- a/hsqldb/makefile.mk +++ b/hsqldb/makefile.mk @@ -56,7 +56,8 @@ CONVERTFILES=build$/build.xml \ PATCH_FILES=patches$/i96823.patch \ patches$/i97032.patch \ patches$/i103528.patch \ - patches$/i104901.patch + patches$/i104901.patch \ + patches$/jdbc-4.1.patch .IF "$(JAVACISGCJ)"=="yes" JAVA_HOME= diff --git a/hsqldb/patches/jdbc-4.1.patch b/hsqldb/patches/jdbc-4.1.patch new file mode 100644 index 00000000000..89149c413ce --- /dev/null +++ b/hsqldb/patches/jdbc-4.1.patch @@ -0,0 +1,267 @@ +--- misc/hsqldb/build/build.xml 2012-02-08 15:14:42.827123541 +0000 ++++ misc/build/hsqldb/build/build.xml 2012-02-08 15:21:43.827722388 +0000 +@@ -98,7 +98,11 @@ + + + +- ++ ++ ++ ++ ++ + + + +@@ -210,6 +214,7 @@ + + + ++ + + + +@@ -244,6 +249,7 @@ + + + ++ + + + +@@ -279,10 +285,47 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +- + T getObject(String columnLabel, Class type) throws SQLException ++ { ++ throw new UnsupportedOperationException("Not supported yet."); ++ } ++ ++ public T getObject(int ColumnIndex, Class type) throws SQLException ++ { ++ throw new UnsupportedOperationException("Not supported yet."); ++ } ++ ++ ++//#endif JAVA7 + } +--- misc/hsqldb/src/org/hsqldb/jdbc/jdbcConnection.java 2012-02-08 15:14:42.802123563 +0000 ++++ misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcConnection.java 2012-02-08 15:47:35.851635628 +0000 +@@ -48,6 +48,12 @@ + import java.sql.SQLXML; + + //#endif JAVA6 ++ ++//#ifdef JAVA7 ++import java.util.concurrent.Executor; ++ ++//#endif JAVA7 ++ + import java.sql.PreparedStatement; + import java.sql.SQLException; + import java.sql.SQLWarning; +@@ -2793,4 +2799,31 @@ + } + + //#endif JAVA6 ++ ++//#ifdef JAVA7 ++ public int getNetworkTimeout() throws SQLException ++ { ++ throw new UnsupportedOperationException("Not supported yet."); ++ } ++ ++ public void setNetworkTimeout(Executor executor, int millis) throws SQLException ++ { ++ throw new UnsupportedOperationException("Not supported yet."); ++ } ++ ++ public void abort(Executor executor) throws SQLException ++ { ++ throw new UnsupportedOperationException("Not supported yet."); ++ } ++ ++ public String getSchema() throws SQLException ++ { ++ throw new UnsupportedOperationException("Not supported yet."); ++ } ++ ++ public void setSchema(String schema) throws SQLException ++ { ++ throw new UnsupportedOperationException("Not supported yet."); ++ } ++//#endif JAVA7 + } +--- misc/hsqldb/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java 2012-02-08 15:14:42.802123563 +0000 ++++ misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java 2012-02-08 15:47:35.835635654 +0000 +@@ -5693,4 +5693,21 @@ + } + + //#endif JAVA6 ++ ++ ++//#ifdef JAVA7 ++ public boolean generatedKeyAlwaysReturned() throws SQLException ++ { ++ throw new UnsupportedOperationException("Not supported yet."); ++ } ++ ++ public ResultSet getPseudoColumns(String catalog, String schemaPattern, ++ String tableNamePattern, String columnNamePattern) throws SQLException ++ { ++ throw new UnsupportedOperationException("Not supported yet."); ++ } ++ ++ ++//#endif JAVA7 ++ + } +--- misc/hsqldb/src/org/hsqldb/jdbc/jdbcDataSource.java 2012-02-08 15:14:42.802123563 +0000 ++++ misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcDataSource.java 2012-02-08 15:47:35.836635653 +0000 +@@ -47,6 +47,11 @@ + //#endif JAVA4 + import org.hsqldb.jdbcDriver; + ++//#ifdef JAVA7 ++import java.sql.SQLFeatureNotSupportedException; ++import java.util.logging.Logger; ++//#endif JAVA7 ++ + // boucherb@users 20040411 - doc 1.7.2 - javadoc updates toward 1.7.2 final + + /** +@@ -323,4 +328,12 @@ + } + + //#endif JAVA6 ++ ++//#ifdef JAVA7 ++ public Logger getParentLogger() throws SQLFeatureNotSupportedException ++ { ++ throw new SQLFeatureNotSupportedException("Not supported yet."); ++ } ++ ++//#endif JAVA7 + } +--- misc/hsqldb/src/org/hsqldb/jdbc/jdbcResultSet.java 2012-02-08 15:14:42.802123563 +0000 ++++ misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcResultSet.java 2012-02-08 15:47:35.866635606 +0000 +@@ -5324,4 +5324,19 @@ + } + + //#endif JAVA6 ++ ++//#ifdef JAVA7 ++ ++ public T getObject(String columnLabel, Class type) throws SQLException ++ { ++ throw new UnsupportedOperationException("Not supported yet."); ++ } ++ ++ public T getObject(int columnNum, Class type) throws SQLException ++ { ++ throw new UnsupportedOperationException("Not supported yet."); ++ } ++ ++//#endif JAVA7 ++ + } +--- misc/hsqldb/src/org/hsqldb/jdbc/jdbcStatement.java 2012-02-08 15:14:42.802123563 +0000 ++++ misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcStatement.java 2012-02-08 15:47:35.872635595 +0000 +@@ -1608,4 +1608,16 @@ + throw new UnsupportedOperationException("Not supported yet."); + } + //#endif JAVA6 ++ ++//#ifdef JAVA7 ++ public boolean isCloseOnCompletion() throws SQLException ++ { ++ throw new UnsupportedOperationException("Not supported yet."); ++ } ++ ++ public void closeOnCompletion() throws SQLException ++ { ++ throw new UnsupportedOperationException("Not supported yet."); ++ } ++//#endif JAVA7 + } +--- misc/hsqldb/src/org/hsqldb/jdbcDriver.java 2012-02-08 15:14:42.800123566 +0000 ++++ misc/build/hsqldb/src/org/hsqldb/jdbcDriver.java 2012-02-08 15:47:35.826635667 +0000 +@@ -42,6 +42,11 @@ + import org.hsqldb.persist.HsqlDatabaseProperties; + import org.hsqldb.persist.HsqlProperties; + ++//#ifdef JAVA7 ++import java.sql.SQLFeatureNotSupportedException; ++import java.util.logging.Logger; ++//#endif JAVA7 ++ + // fredt@users 20011220 - patch 1.7.0 by fredt + // new version numbering scheme + // fredt@users 20020320 - patch 1.7.0 - JDBC 2 support and error trapping +@@ -321,4 +326,12 @@ + DriverManager.registerDriver(new jdbcDriver()); + } catch (Exception e) {} + } ++ ++//#ifdef JAVA7 ++ public Logger getParentLogger() throws SQLFeatureNotSupportedException ++ { ++ throw new SQLFeatureNotSupportedException("Not supported yet."); ++ } ++ ++//#endif JAVA7 + } -- 2.30.2